System, method and program for managing chat sessions

ABSTRACT

System, method and program product for managing a chat session. A server maintains an identity and list of member(s) of a group that can be added to a chat session, and a list of people authorized to request that the group of member(s) be added to the chat session. A person in a chat session at a workstation makes a request to add the group of member(s) to the chat session. In response, the workstation sends the request to the server. In response to the request, the server determines if the person is authorized to add the group to the chat session. If so, the server sends an invitation to the member(s) to join the chat session. If not, the server does not send an invitation to the member(s) to join the chat session. To make the request to add the group to the chat session, the person can enter in a chat session text field a character string that is a command to add the group to the chat session. A program at the workstation monitors the text field and determines that the character string is the command to add the group to the chat session.

FIELD OF THE INVENTION

The invention relates generally to computer systems, and more specifically to network “chat” sessions.

BACKGROUND OF THE INVENTION

“Chat” sessions are well known today, and available via Internet Service Providers and other companies. Typically, there is a server program and a client program that enable the chat sessions. Examples of existing chat session programs are IBM Sametime instant messaging program, Microsoft MSN Messenger, Microsoft Windows Messenger, Yahoo Instant Messenger, and AOL Instant Messenger. To set up a chat session, one person at a workstation checks if another person is currently “on line” at another computer. If so, the one person selects the other person and then types a message into a chat session text field on the one person's workstation. In response, the workstation of the one person sends the message to the workstation of the other person where it appears in a text field on the workstation of the other person prefaced by the name of the one person. The other person can respond simply by typing into another text field that the workstation provides for a response, and the response is sent to and appears in a text field on the workstation of the one person prefaced by the name of the other person. The foregoing process can continue, with other messages being sent by either person, as long the chat session persists. The exchange of messages is essentially real time. Each person can also add one or more other people to the chat session by selecting their name from a list of individuals or groups (sometimes called a “buddy list”) that the person previously designated for potentially adding to chat sessions. The list is typically maintained on the person's own workstation, and cannot be accessed from any other person's workstation. The selection of a person or group from the list to add to the chat session is made using a mouse and cursor to select the individual or group from the list. A person can also add another person to the chat session by looking up the other person in a directory, and then selecting the other person from the directory. After being added to a chat session, any person so added can likewise type a message in a text field on their workstation, and the message will appear, prefaced by the name of the sender, on the workstations of all other people in the chat session.

While the foregoing chat session functions are effective in communicating the messages in real time and adding people to a chat session, it would be advantageous to simplify the process of adding people to a chat session while maintaining requisite security.

Accordingly, an object of the present invention is to simplify the process of adding people to a chat session while maintaining an effective level of security.

SUMMARY OF INVENTION

The present invention resides in a system, method and program product for managing a chat session. A server maintains an identity and list of member(s) of a group that can be added to a chat session, and a list of people authorized to request that the group of member(s) be added to the chat session. A person in a chat session at a workstation makes a request to add the group of member(s) to the chat session. In response, the workstation sends the request to the server. In response to the request, the server determines if the person is authorized to add the group to the chat session. If so, the server sends an invitation to the member(s) to join the chat session. If not, the server does not send an invitation to the member(s) to join the chat session.

According to features of the present invention, to make the request to add the group to the chat session, the person enters in a chat session text field a character string that is a command to add the group to the chat session. A program at the workstation monitors the text field and determines that the character string is the command to add the group to the chat session. In response, a command is sent to the server to add the group to the chat session. By way of example, the character string comprises an identity of the group surrounded by symbols which differentiate the character string from message text.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram of a distributed computer system including a chat session management program which incorporates the present invention.

FIG. 2 is a flow chart of the chat session management program of FIG. 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention will now be described in detail with reference to the figures. FIG. 1 illustrates a distributed computer system generally designated 10. System 10 comprises workstations 12 a,b,c,d and a server 14 interconnected via the Internet 20. The workstations 12 a,b,c,d include respective CPUs 20 a,b,c,d, operating systems 22 a,b,c,d, RAMs 24 a,b,c,d, ROMs 26 a,b,c,d and storages 28 a,b,c,d, according to the prior art. Server 14 likewise includes a CPU 30, operating system 32, RAM 34, ROM 36 and storage 38, according to the prior art. Workstations 12 a,b,c,d also include respective chat session client programs 40 a,b,c,d. Chat session client programs 40 a,b,c,d include known chat session client functions to allow one person at any of the workstations to initiate a chat session with another person at any of the other workstations, by selecting the name of the other person from a list previously defined by the one person or “looked-up” from a directory, and then typing a message for the other person. The other person can respond by typing a responsive message. Either person can add another person to the chat session in the same manner as the first person was added. Chat session client programs 40 a,b,c,d also include new chat session client functions to add a group of (one or more) people to the chat session by typing a command in the text field to identify the group and the request to add them to the chat session, according to the present invention. The group was predefined, and the name and identities of the members of the group are maintained at the server 14. Because the groups are maintained at the server 14, this allows any workstation (whose user knows the group name) to request that the group be added to a chat session. (If the user is authorized, then the group will be added to the chat session.) Preferably, the group name identifies the expertise or interest of the member(s) of the group. For example, a group of people interested in computer viruses can be named “virus” group. Preferably, the command to add this group to the chat session comprises the name of the group within predefined, characters, such as exclamation points. In this example, the command to add the virus group to the chat session could be !virus!. It is also possible that workstations 12 a,b,c,d can include icons to represent the groups that can be added to a chat session. In such a case, the server 14 would provide the icons to the workstations because the groups are maintained at the server. Client programs 40 a,b,c,d also include intelligent agent (or “bot”) programs 42 a,b,c,d to monitor the text field of the respective workstations looking for entries surrounded by the predefined characters, such as exclamation points, and upon finding such an entry, sending the command to server 14. Server 14 includes a chat session server program 50. Chat session server program 50 includes known chat session server functions to maintain a list of participants of each chat session, and route messages from each initiating participant/workstation to the other participants of the chat session. Thus, when any participant of a chat session enters a message into his or her chat session text field of their client workstation, the workstation (under control of program 40 a,b,c or d) forwards the message to server 14. In response, program 50 identifies the other participants in the chat session based on the identity of the chat session, and the addresses of their workstations. Then, server 14 forwards the chat session message to these other participants/workstations. Chat session server program 50 also includes new chat session server functions according to the present invention to respond to the commands sent by the workstations to add a group to the chat session. Program 50 responds to these commands by checking if the sender, i.e. the person logged onto the workstation that sent the command, is identified in a list of people authorized to invite this group of people to a chat session. This prevents unauthorized people, such as hackers, from wantonly inviting this group of people into a chat session, adding unwanted people to the chat session and wasting the time of the people added. If the person that sent the command is authorized to add the group to the chat session, then the chat session server program 50 adds the group to the chat session, so they can see the messages sent by other people in the chat session and send their own messages to the other people in the chat session.

FIG. 2 illustrates, in more detail, a set-up phase for chat session server program 50 and chat session client programs 40 a,b,c,d. In step 100, a person at server 14 or a remote workstation invokes chat session server program 50 and authenticates himself or herself with a UserID and password. (Alternately, a person at any of workstations 12 a,b,c,d can invoke chat session server program 50 via the respective chat session client program 40 a,b,c,d.) Next, the person identifies to program 50 a “base collaboration group” by name and members (step 102). As explained below, the members of the base collaboration group are authorized to invite “add-on” groups to join a chat session in which the member is currently a participant, by sending a command to server 14. Next, the person identifies to program 50 one or more permitted “add-on” groups by name and members of each group (step 104). For example, the person can identify an “add-on” group called “virus”, and identify people in this group who are interested in chat sessions about viruses. Such people can be systems' administrators responsible for security. Next, the person identifies to program 50 a unique “trigger invocation key” for each add-on group which is the command (i.e. text and symbols or other characters which surround the text) to send to server 14 to invite the add-on group to the chat session (step 106). For each trigger invocation key, the person also identifies to program 50 which base collaboration group of members are authorized to send the trigger invocation key (to add the corresponding add-on group to the chat session). In response to the identification of trigger invocation key, the collaboration group and corresponding add-on group, chat session server program 50 sends a request to intelligent agent or “bot” programs (such as programs 42 a,b,c,d) of the workstations in the collaboration group to monitor a chat session text field looking for the command to invite the add-on group to a chat session (step 107). In response, the intelligent agent program on each workstation adds the trigger invocation key to a list of trigger invocation keys for which to scan chat session text fields on the workstation. Next, the person optionally identifies security credentials required from the members of the base collaboration group for the server to act upon a command by the members of the base collaboration group to invite the members of the corresponding add-on group (decision 108 and step 110). Such credentials may include Username and Password, digital certificate, token, pass phrase, chat systems assigned ID, physical attributes of the system the user is using, such as the system's processor serial number, the system's network interface component media access address (MAC address). These credentials may be used singly or in combination with each other.

FIG. 3 illustrates, in more detail, a collaboration or chat session phase of chat session server program 50 and chat session client programs 40 a,b,c,d. In step 200, two or more people are engaged in a chat session using the standard functions of chat session client program 40 a,b,c,d and chat session server program 50. Next, one of the people currently engaged in the chat session enters, in the text field of his or her workstation's chat session display, a command to add a specified “add-on” group. (Alternately, the person selects an icon defined by server 14 and displayed on the workstation of the person. The icon represents the add-on group, and when selected by the person, will cause the program 40 a,b,c or d to send the command to server 14 to invite the add-on group.) For example, the command can be !virus! which is intended to add to the chat session an add-on group named “virus”. In response, the intelligent agent program 42 a,b,c or d of the person's workstation detects that a trigger invocation key has been entered into the chat session text field (decision 202). The intelligent agent program 42 a,b,c or d detects the trigger invocation key by matching the character string of the trigger invocation key to the list of character strings for which chat session server program 50 has previously instructed the intelligent agent program 41 a,b,c or d to monitor. Upon detecting the trigger invocation key, the intelligent agent program 42 a,b,c or d sends a request to the chat session server program 50 to invite the add-on group to the chat session (step 204). This request includes the name of the add-on group, the name of the person who sent the request, whether a credentials prompt is needed and the name of the add-on group for context purposes. In response, the chat session server program 50 determines if the person that sent the request was authorized to make the request (by entering the trigger invocation key command in the chat session text field) (decision 206). Chat session server program 50 makes this determination by comparing the name of the requester to a list of people authorized to request to invite the add-on group to the chat session, as entered in steps 102-106. If the requester is authorized, the chat session server program 50 sends an invitation to each member of the add-on group to join the chat session (step 208). If the member is logged-on, usually the member will accept the invitation, and provide security credentials if required to accept the invitation (step 209). Next, chat session server program 50 determines from its configuration file whether optional security features were specified in decision 108 (decision 210). If not (decision 210, no branch), then chat session server program 50 joins each of the members of the add-on group that accepted the invitation to the chat session with the others already in the chat session (step 220). Chat session server program 50 joins these members by extending an invitation to join the chat session. Referring again to decision 210, yes branch, where optional security features were specified in decision 108, chat session server program 50 determines if the security credential supplied by each member of the add-on group are valid (decision 216). If so, then chat session server program 50 joins the member of the add-on group to the chat session (step 220). If not, then the chat session server program 50 sends an error message to the person who set up the add-on group, the member of the add-on group that did not supply the proper credentials, and the member of the base collaboration group that sent the request to invite the members of the add-on group to the current chat session (step 230).

Chat session client program 40 a,b,c,d and intelligent agent programs 42 a,b,c,d can be loaded into workstations 12 a,b,c,d from a computer readable media 43 a,b,c,d such as magnetic disk or tape, optical disk, DVD, etc. or downloaded from the Internet via TCP/IP adapter cards 45 a,b,c,d. Chat session server program 50 can be loaded into server 14 from a computer readable media 49 such as magnetic disk or tape, optical disk, DVD, etc. or downloaded from the Internet via TCP/IP adapter cards 47.

Based on the foregoing, system, method and program for managing chat sessions have been disclosed. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. For example, program 50 can maintain a cache history of chat transcript since the trigger key was invoked, and this history can be presented to a person added to the chat session upon his or her request. Therefore, the present invention has been disclosed by way of illustration and not limitation, and reference should be made to the following claims to determine the scope of the present invention. 

1. A method for managing a chat session, said method comprising the steps of: maintaining at a server an identity and list of member(s) of a group that can be added to a chat session, and a list of people authorized to request that said group of member(s) be added to said chat session; a person in a chat session at a workstation making a request to add said group of member(s) to said chat session, and in response, said workstation sending said request to said server; in response to said request, said server determining if said person is authorized to add said group to said chat session, and if so, said server sending an invitation to said member(s) to join said chat session, and if not, said server not sending an invitation to said member(s) to join said chat session.
 2. A method as set forth in claim 1 wherein said step of said person in a chat session at a workstation making a request to add said group comprises the steps of: said person entering in a chat session text field a character string that is a command to add said group to said chat session; and a program at said workstation monitoring said text field and determining that said character string is said command to add said group to said chat session, and in response, sending a command to said server to add said group to said chat session.
 3. A method as set forth in claim 1 wherein said character string comprises an identity of said group surrounded by symbols which differentiate said character string from message text.
 4. A method as set forth in claim 1 further comprising the steps of: said server obtaining from said member(s) a credential and determining if said credential is valid, and if so, joining said member(s) to said chat session.
 5. A method as set forth in claim 1 wherein if said person is authorized to add said group to said chat session, and said server sends an invitation to said member(s) to join said chat session, further comprising the steps of: said member(s) responding to said server with acceptance(s) to join said chat session; and said server joining said member(s) to said chat session.
 6. A method as set forth in claim 1 wherein if said person is authorized to add said group to said chat session, and said server sends an invitation to said member(s) to join said chat session, further comprising the step of said server joining said member(s) to said chat session.
 7. A system for managing a chat session, said system comprising: means for maintaining at a server an identity and list of member(s) of a group that can be added to a chat session, and a list of people authorized to request that said group of member(s) be added to said chat session; means for enabling a person in a chat session at a workstation to make a request to add said group of member(s) to said chat session, and means within said workstation, responsive to said request, for sending said request to said server; and said server including means, responsive to said request, for determining if said person is authorized to add said group to said chat session, and if so, sending an invitation to said member(s) to join said chat session, and if not, not sending an invitation to said member(s) to join said chat session.
 8. A system as set forth in claim 7 wherein said means for enabling said person in a chat session at a workstation to make a request to add said group comprises: means for enabling said person to enter in a chat session text field a character string that is a command to add said group to said chat session; and a program at said workstation for monitoring said text field and determining that said character string is said command to add said group to said chat session, and in response, sending a command to said server to add said group to said chat session.
 9. A system as set forth in claim 7 wherein said character string comprises an identity of said group surrounded by symbols which differentiate said character string from message text.
 10. A system as set forth in claim 7 wherein said server further comprises means for obtaining from said member(s) a credential and determining if said credential is valid, and if so, joining said member(s) to said chat session.
 11. A system as set forth in claim 7 wherein said server further comprises: means, responsive to said person being authorized to add said group to said chat session, for sending an invitation to said member(s) to join said chat session; and means, responsive to said member(s) responding to said server with acceptance(s) to join said chat session, for joining said member(s) to said chat session.
 12. A system as set forth in claim 7 wherein said server further comprises means, responsive to said person being authorized to add said group to said chat session, for sending an invitation to said member(s) to join said chat session, and subsequently joining said member(s) to said chat session.
 13. A computer program product for managing a chat session, said computer program product comprising: a computer readable media; first program instructions to maintain at a server an identity and list of member(s) of a group that can be added to a chat session, and a list of people authorized to request that said group of member(s) be added to said chat session; second program instructions, for execution within a workstation, to enable a person in a chat session at said workstation to make a request to add said group of member(s) to said chat session, and to respond to said request by initiating sending of said request to said server; and third program instructions, for execution within said server, to respond to said request by determining if said person is authorized to add said group to said chat session, and if so, sending an invitation to said member(s) to join said chat session, and if not, not sending an invitation to said member(s) to join said chat session; and wherein said first, second and third program instructions are stored on said media in functional form.
 14. A computer program product as set forth in claim 13 wherein said second program instructions comprise: fourth program instructions to enable said person to enter in a chat session text field a character string that is a command to add said group to said chat session; and fifth program instructions, for execution at said workstation, to monitor said text field and determine that said character string is said command to add said group to said chat session, and in response, initiate sending of a command to said server to add said group to said chat session; and wherein said fourth and fifth program instructions are stored on said media in functional form.
 15. A computer program product as set forth in claim 13 wherein said character string comprises an identity of said group surrounded by symbols which differentiate said character string from message text.
 16. A computer program product as set forth in claim 13 further comprising fourth program instructions, for execution within said server, to obtain from said member(s) a credential and determine if said credential is valid, and if so, join said member(s) to said chat session; and wherein said fourth program instructions are stored on said media in functional form.
 17. A computer program product as set forth in claim 13 further comprising: fourth program instructions, for execution within said server, to respond to said person being authorized to add said group to said chat session, by sending an invitation to said member(s) to join said chat session; and fifth program instructions, for execution within said server, to respond to said member(s) responding to said server with acceptance(s) to join said chat session, by joining said member(s) to said chat session; and wherein said fourth and fifth program instructions are stored on said media in functional form.
 18. A computer program product as set forth in claim 13 further comprising fourth program instructions, for execution within said server, to respond to said person being authorized to add said group to said chat session, by sending an invitation to said member(s) to join said chat session, and subsequently joining said member(s) to said chat session. 